#include <stdio.h>
#include <stdlib.h>
#include "lista.h"

int main(){

/* lista de enteros */

lista * lt = listaCrear();

int n = 325;
listaInsertar(lt, 1, &n);
n = 823;
listaInsertar(lt, 1, &n);
n = 100;
listaInsertar(lt, 1, &n);
n = 105;
listaInsertar(lt, 1, &n);

listaFilter(lt, (enum boolean_e (*)(void*)) es_multiplo_de_5);

listaMap(lt, (void* (*) (void*)) dividir_por_dos);

listaImprimir(lt, "./salida");

listaDestruir(lt);

/* ! lista de enteros */


/* lista de doubles */

lt = listaCrear();

double d = -3.25;
listaInsertar(lt, 2, &d);
d = 8.23;
listaInsertar(lt, 2, &d);
d = 1.00;
listaInsertar(lt, 2, &d);
d = -1.05;
listaInsertar(lt, 2, &d);

listaFilter(lt, (enum boolean_e (*)(void*)) es_negativo);

listaMap(lt, (void* (*) (void*)) multiplicar_por_pi);

listaImprimir(lt, "./salida");

listaDestruir(lt);

/* ! lista de doubles */


/* lista de strings */

lt = listaCrear();

listaInsertar(lt, 3, "Ricardo, Ricardo, Ricardo Ruben");
listaInsertar(lt, 3, "mono");
listaInsertar(lt, 3, "en escalada no hay nada");

listaFilter(lt, (enum boolean_e (*)(void*)) es_largo_mayor_10);

listaMap(lt, (void* (*) (void*)) tomar_primeros_10);

listaImprimir(lt, "./salida");

listaDestruir(lt);

/* ! lista de strings */

return 0;

}
